#define _CRT_SECURE_NO_WARNINGS 
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
//void test07()
//{
//	string str = "hello";
//	cout << str.substr(2, 2) << endl;
//}
//void test08()
//{
//	string str = "HAHAHAHAHA";
//	str.insert(4,"Hello");
//	cout << str << endl;
//	str.insert(4, 5, 'K');
//	cout << str << endl;
//	str.erase(4, 5);
//	cout << str << endl;
//}
//void test01()
//{
//	vector<int>v;
//	v.push_back(10);
//	v.push_back(20);
//	v.push_back(30);
//	vector<int>::iterator it = v.begin();
//	cout << *it << endl;
//	it++;
//	cout << *it << endl;
//	it++;
//	cout << *it << endl;
//	for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
//	{
//		if (*it == 20)
//		{
//			*it == 200;
//		}
//	}
//	for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
//	{
//		cout << *it << endl;
//	}
//	for (int& ele : v)
//	{
//		if (ele == 200)
//		{
//			ele == 2000;
//		}
//	}
//	for (int ele : v)
//	{
//		cout << ele << endl;
//	}
//	for (vector<int>::iterator it = v.end(); it != v.begin();)
//	{
//		*it--;
//		cout << *it << endl;
//	}
//}
//template < typename E>
//void printVector(vector<E>& vector)
//{
//	for (E& ele : vector)
//	{
//		cout << ele << ",";
//	}
//	cout << endl;
//}
//void test02()
//{
//	vector<int>v1;
//	vector<int>v2(10,5);
//	printVector(v2);
//	vector<int>v3(v2.begin(), v2.end());
//	printVector(v3);
//	vector<int>v3(v2.begin(), v2.begin() + 5);
//	printVector(v3);
//	int array[] = { 1,2,3,4,5 };
//	vector<int>v4(array, array + 3);
//	printVector(v4);
//}
//void test03()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
//	vector<int>v;
//	v.assign(arr, arr + 6);
//	vector<int>v2;
//	v2.assign(5, 10);
//	printVector(v2);
//	vector<int>v3;
//	v3 = v2;
//	printVector(v3);
//	v.swap(v2);
//	printVector(v);
//	printVector(v2);
//}
//void test04()
//{
//	vector<int>v(10, 5);
//	cout << "size = " << v.size() << endl;
//	cout << "empty = " << v.empty() << endl;
//	cout << "capacity = " << v.capacity() << endl;
//	v.resize(5);
//	v.resize(15);
//	v.resize(15, 9);
//	cout << "size = " << v.size() << endl;
//	printVector(v);
//}
//void test05()
//{
//	int array[] = { 1,2,3,4,5,6,7,8,9,10 };
//	vector<int>v(array, array + (sizeof(array) / sizeof(int)));
//	int& ele = v.at(3);
//	cout << ele << endl;
//	ele = 40;
//	printVector(v);
//	int& e = v[5];
//	cout << e << endl;
//	e = 60;
//	printVector(v);
//	cout << v.front() << endl;
//	cout << v.back() << endl;
//}
//void test06()
//{
//	int array[] = { 1,2,3,4,5,6,7,8,9,10 };
//	vector<int>v(array, array + (sizeof(array) / sizeof(int)));
//	v.insert(v.begin() + 3, 5, 0);
//	printVector(v);
//	v.push_back(20);
//	printVector(v);
//	v.pop_back();
//	printVector(v);
//	v.erase(v.begin() + 5);
//	printVector(v);
//	v.erase(v.begin() + 7, v.begin() + 10);
//	printVector(v);
//	v.clear();
//	printVector(v);
//}
//void test08()
//{
//	vector<int>v;
//	for (int i = 0; i < 10000; i++)
//	{
//		v.push_back(i);
//	}
//	cout << "size = " << v.size() << endl;
//	cout << "capacity = " << v.capacity() << endl;
//	v.resize(10);
//	cout << "size = " << v.size() << endl;
//	cout << "capacity = " << v.capacity() << endl;
//	vector<int>v2(v);
//	v2.swap(v);
//	vector<int>(v).swap(v);
//}
//int main()
//{
//	test07();
//	test08();
//	test01();
//	test02();
//	test03();
//	test04();
//	test08();
//	int* p = new int(10);
//	cout << p << endl;
//	cout << (p + 1) << endl;
//	return 0;
//}
//int g[3][4] = { {1,5,6,8},
//	{9,6,7,3},
//	{5,3,2,4} };
//int sum[3][4];
//int d[4][5];
//void pre_sum()
//{
//	for (int i = 0; i < 3; i++)
//	{
//		sum[i][0] = sum[i - 1][0] + g[i][0];
//	}
//	for (int j = 0; j < 4; j++)
//	{
//		sum[0][j] = sum[0][j - 1] + g[0][j];
//	}
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 4; j++)
//		{
//			sum[i][j] = sum[i - 1][j] + sum[i][j - 1] + g[i][j] - sum[i - 1][j - 1];
//		}
//	}
//}
//int get_sum(int x1,int y1,int x2,int y2)
//{
//	if (!x1 && !y1)
//	{
//		return sum[x2][y2];
//	}
//	if (!x1)
//	{
//		return sum[x2][y2] - sum[x2][y1 - 1];
//	}
//	if (!y1)
//	{
//		return sum[x2][y2] - sum[x1 - 1][y2];
//	}
//	return sum[x2][y2] - sum[x2][y1 - 1] - sum[x1 - 1][y2] + sum[x1 - 1][y1 - 1];
//}
//void add(int x1, int y1, int x2, int y2, int v)
//{
//	d[x1][y1] += v;
//	d[x2 + 1][y1] -= v;
//	d[x1][y2 + 1] -= v;
//	d[x2 + 1][y2 + 1] += v;
//}
//void pre_sum()
//{
//	sum[0][0] = d[0][0];
//	for (int i = 0; i < 3; i++)
//	{
//		sum[i][0] = sum[i - 1][0] + d[i][0];
//	}
//	for (int j = 0; j < 4; j++)
//	{
//		sum[0][j] = sum[0][j - 1] + d[0][j];
//	}
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 4; j++)
//		{
//			sum[i][j] = sum[i - 1][j] + sum[i][j - 1] + d[i][j] - sum[i - 1][j - 1];
//		}
//	}
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 4; j++)
//		{
//			g[i][j] += sum[i][j];
//		}
//	}
//}
//
//
//void print()
//{
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 4; j++)
//		{
//			cout << g[i][j] << " ";
//		}
//		cout << endl;
//	}
//}
//int main()
//{
//	//pre_sum();
//	//cout << get_sum(1, 1, 2, 2) << " " << get_sum(0, 1, 1, 3);
//	add(0, 0, 2, 1, 3);
//	add(1, 1, 2, 2, -1);
//	pre_sum();
//	print();
//	return 0;
//}
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int n, m, q;
void pre_sum(int  arr[][1005], int sum[][1005], int n, int m)
{
	for (int i = 1; i < n; i++)
	{
		sum[i][0] = sum[i - 1][0] + arr[i][0];
	}
	for (int j = 1; j < m; j++)
	{
		sum[0][j] = sum[0][j - 1] + arr[0][j];
	}
	for (int i = 1; i < n; i++)
	{
		for (int j = 1; j < m; j++)
		{
			sum[i][j] = arr[i][j] + sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
		}
	}
	print();
}
void print(int sum[][1005])
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << sum[i][j] << " ";
		}
		cout << endl;
	}
}
int add(int  sum[][1005])
{
	int x1, y1, x2, y2;
	cin >> x1 >> y1 >> x2 >> y2;
	for (int i = x1; i <= x2; i++)
	{
		for (int j = y1; j <= y2; j++)
		{
			if (!x1 && !y1)
			{
				return sum[x2][y2];
			}
			if (!x1)
			{
				return sum[x2][y2] - sum[x2][y1 - 1];
			}
			if (!y1)
			{
				return sum[x2][y2] - sum[x1 - 1][y2];
			}
			return sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1];
		}
	}

}
int main()
{
	cin >> n >> m >> q;
	int arr[1005][1005] = { 0 };
	int sum[1005][1005] = { 0 };
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			cin >> arr[i][j];
		}
	}
	pre_sum(arr, sum, n, m);
	while (q--)
	{
		cout << add(sum) << endl;
	}
	return 0;
}